package main

import (
	"fmt"
	"os"
)

/* 结构体 学生管理系统 **/

type Student struct {
	ID   int
	Name string
}
type StudentMag struct {
	allStu map[int]Student
}

func (s *StudentMag) ShowStudents() {
	for _, v := range s.allStu {
		fmt.Printf("学生ID：%d 学生姓名：%s\n", v.ID, v.Name)
	}
}
func (s *StudentMag) AddStudent() {
	fmt.Println("添加学生信息！")
	var (
		id   int
		name string
	)
	fmt.Print("请输入用户id：")
	fmt.Scan(&id)
	fmt.Print("请输入用户姓名：")
	fmt.Scan(&name)
	s.allStu[id] = Student{
		ID:   id,
		Name: name,
	}
}
func (s *StudentMag) EditStudent() {
	fmt.Println("编辑学生信息！")
	var (
		id   int
		name string
	)
	fmt.Print("请输入用户id：")
	fmt.Scan(&id)
	_, ok := s.allStu[id]
	if !ok {
		fmt.Println("没有该学生信息")
		return
	}
	fmt.Print("请输入用户姓名：")
	fmt.Scan(&name)
	s.allStu[id] = Student{
		ID:   id,
		Name: name,
	}
}
func (s *StudentMag) DelStudent() {
	fmt.Println("删除学生信息！")
	var id int
	fmt.Print("请输入用户id：")
	fmt.Scan(&id)
	_, ok := s.allStu[id]
	if !ok {
		fmt.Println("没有该学生信息")
		return
	}
	delete(s.allStu, id)
}

func showMenu() {
	fmt.Println("welcome sms-----")
	fmt.Println(`
		1. 查看所有学生信息
		2. 添加学生信息
		3. 编辑学生信息
		4. 删除学生信息
		5. 退出系统
	`)

}

func main() {
	sms := StudentMag{
		allStu: make(map[int]Student, 100),
	}
	for {
		showMenu()
		var chooise int
		fmt.Print("请输入需要操作的编号:")
		fmt.Scan(&chooise)
		fmt.Printf("你输入的操作编号为%d\n:", chooise)
		switch chooise {
		case 1:
			sms.ShowStudents()
		case 2:
			sms.AddStudent()
		case 3:
			sms.EditStudent()
		case 4:
			sms.DelStudent()
		case 5:
			os.Exit(1)
		default:
			fmt.Printf("重来")
		}
	}

}
